import axios from 'axios'
import { useUserStore } from '../stores/user'

// 创建 axios 实例
const api = axios.create({
  baseURL: '/api',  // 修改为统一的 /api 前缀
  timeout: 10000
})

// 配置请求拦截器
api.interceptors.request.use(
  config => {
    const userStore = useUserStore()
    if (userStore.token) {
      config.headers['Authorization'] = `Bearer ${userStore.token}`
    }
    return config
  },
  error => {
    console.error('Request error:', error)
    return Promise.reject(error)
  }
)

// 配置响应拦截器
api.interceptors.response.use(
  response => {
    if (response.data.status === 'success') {
      return response.data
    }
    return response.data
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 401:
          const userStore = useUserStore()
          userStore.logout()
          window.location.href = '/login'
          break
        case 403:
          console.error('Forbidden:', error.response.data)
          break
        case 404:
          console.error('Not Found:', error.response.data)
          break
        case 500:
          console.error('Server Error:', error.response.data)
          break
        default:
          console.error('Response Error:', error.response.data)
      }
    } else if (error.request) {
      console.error('Network Error:', error.request)
    } else {
      console.error('Error:', error.message)
    }
    return Promise.reject(error)
  }
)

export const http = {
  get: (url, params) => api.get(url, { params }),
  post: (url, data) => api.post(url, data),
  put: (url, data) => api.put(url, data),
  delete: (url) => api.delete(url)
} 